Basics
Introduction to Data Structures
- Definition and importance of data structures
- Classification of data structures
- Abstract Data Types (ADTs)
Arrays and Strings
- Introduction to arrays
- Array operations (traversal, insertion, deletion)
- Introduction to strings and string operations
Linked Lists
- Singly linked list
- Doubly linked list
- Circular linked list
- Operations on linked lists
Intermediate
Stacks
- Definition and applications of stacks
- Implementation using arrays and linked lists
- Stack operations (push, pop, peek)
Queues
- Definition and applications of queues
- Implementation using arrays and linked lists
- Types of queues (simple, circular, priority, deque)
- Queue operations (enqueue, dequeue, front, rear)
Trees
- Introduction to trees and terminology
- Binary trees and binary search trees
- Tree traversal methods (in-order, pre-order, post-order)
- AVL trees and balancing trees
Hashing
- Introduction to hashing and hash functions
- Collision resolution techniques
- Applications of hashing
Advanced
Heaps
- Introduction to heaps and heap properties
- Binary heaps (min-heap and max-heap)
- Heap operations (insert, delete, heapify)
- Applications of heaps (priority queues)
Graphs
- Introduction to graphs and terminology
- Graph representations (adjacency matrix, adjacency list)
- Graph traversal methods (BFS, DFS)
- Shortest path algorithms (Dijkstra's, Bellman-Ford)
Advanced Trees
- B-trees and B+ trees
- Red-black trees
- Segment trees and interval trees
- Trie (prefix tree) and applications
Algorithms on Data Structures
- Sorting algorithms (quick sort, merge sort, heap sort)
- Search algorithms (binary search, interpolation search)
- Pattern matching algorithms (KMP, Rabin-Karp)
- Dynamic programming and greedy algorithms